跳到主要内容

记一次zynq 7010启动不了原因排查

已经做了的测试

  1. 串口完好

    1. 通过 jtag 启动 uboot 正常输出
    2. vitis 编译的 helloworld 正常输出
  2. PS 端 efuse 位正常

    1. chatgpt 教我的,但是我好像找不到这个寄存器的定义(在文档里)
      connect
      targets -set -filter {name =~ "APU*"}
      mrd 0xF800D100 16
    2. 但是无所谓,在 jtag 能正常启动双核
  3. PL 端 efuse 位正常

  4. SD 卡疑似检测不出来

    1. uboot 里检查不到 mmc

[!NOTE] Conclusion 怀疑是 SD 卡卡槽被顶烂了

或者是 zynq 的 SD 控制器烂了

寄存器定义

System Level Control Registers (slcr) • Zynq 7000 SoC Technical Reference Manual (UG585) • 阅读器 • AMD 技术信息门户网站

jtag 启动步骤

[中文博客] 通过JTAG在AMD XILINX SoC器件里启动Linux的方法

connect
targets -set -filter {name =~ "ARM*#0"}
rst -processor
dow zynq_fsbl.elf
con
exec sleep 4
stop
dow -data system.dtb 0x100000
exec sleep 1
dow u-boot.elf
con
dow -data uImage 0x10000000
dow -data system.dtb 0x11000000
dow -data rootfs.cpio.gz.u-boot 0x11A00000